package dao.StoreDao;

import common.model.Entity.StoreEntity.Category;
import dao.BaseDao;

import java.util.List;
import java.util.Optional;

/**
 * 商品分类数据访问接口，提供商品分类相关的数据库操作
 */
public interface CategoryDao extends BaseDao<Category, Long> {
    /**
     * 插入分类并返回生成的ID
     *
     * @param category 分类对象
     * @return 生成的分类ID
     */
    long insertAndReturnId(Category category);

    /**
     * 根据父分类ID查询子分类列表
     *
     * @param parentId 父分类ID
     * @return 子分类列表
     */
    List<Category> findByParent(Long parentId);

    /**
     * 根据分类名称查询分类
     *
     * @param name 分类名称
     * @return 包含分类的Optional对象，如果存在则返回分类，否则返回空Optional
     */
    Optional<Category> findByName(String name);
}